<!--

     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.

-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- **************************************************************** -->
<!-- *  PLEASE KEEP COMPLICATED EXPRESSIONS OUT OF THESE TEMPLATES, * -->
<!-- *  i.e. only iterate & print data where possible. Thanks, Jez. * -->
<!-- **************************************************************** -->

<html>
<head>
    <!-- Generated by groovydoc (2.4.7) on Thu Dec 01 22:36:10 PST 2016 -->
    <title>ArtifactExecutionFacade (Moqui Framework 2.0.0)</title>
    <meta name="date" content="2016-12-01">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="../../../groovy.ico" type="image/x-icon" rel="shortcut icon">
    <link href="../../../groovy.ico" type="image/x-icon" rel="icon">
    <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">

<body class="center">
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
    parent.document.title="ArtifactExecutionFacade (Moqui Framework 2.0.0)";
}
//-->
</script>
<noscript>
    <div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
    <!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../index-all.html">Index</a></li>
        <li><a href="../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../index.html?org/moqui/context/ArtifactExecutionFacade" target="_top">Frames</a></li>
            <li><a href="ArtifactExecutionFacade.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <a name="skip-navbar_top">
        <!--   -->
    </a></div>
<!-- ========= END OF TOP NAVBAR ========= -->

<!-- ======== START OF CLASS DATA ======== -->
<div class="header">

    <div class="subTitle">Package: <strong>org.moqui.context</strong></div>

    <h2 title="[Java] Interface ArtifactExecutionFacade" class="title">[Java] Interface ArtifactExecutionFacade</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">

</ul>
<div class="description">
    <ul class="blockList">
        <li class="blockList">


    <p> For information about artifacts as they are being executed. </p>

          </li>
    </ul>
</div>

<div class="summary">
    <ul class="blockList">
        <li class="blockList">
        <!-- =========== NESTED CLASS SUMMARY =========== -->
        

        <!-- =========== ENUM CONSTANT SUMMARY =========== -->
        
        <!-- =========== FIELD SUMMARY =========== -->
        

        <!-- =========== PROPERTY SUMMARY =========== -->
        

        <!-- =========== ELEMENT SUMMARY =========== -->
        

        

        
        <!-- ========== METHOD SUMMARY =========== -->
        <ul class="blockList">
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Methods Summary table">
                        <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Type</th>
                            <th class="colLast" scope="col">Name and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>boolean</strong></code></td>
                            <td class="colLast"><code><strong><a href="#disableAuthz()">disableAuthz</a></strong>()</code><br>Disable authorization checks for the current ExecutionContext only.
 </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>boolean</strong></code></td>
                            <td class="colLast"><code><strong><a href="#disableEntityEca()">disableEntityEca</a></strong>()</code><br>Disable Entity Facade ECA rules (for this thread/ExecutionContext only, does not affect other things happening
 in the system).</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>boolean</strong></code></td>
                            <td class="colLast"><code><strong><a href="#disableTarpit()">disableTarpit</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#enableAuthz()">enableAuthz</a></strong>()</code><br>Enable authorization after a disableAuthz() call. </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#enableEntityEca()">enableEntityEca</a></strong>()</code><br>Disable Entity Facade ECA rules (for this thread/ExecutionContext only, does not affect other things happening
 in the system).</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#enableTarpit()">enableTarpit</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>java.util.List&lt;<a href='../../../org/moqui/context/ArtifactExecutionInfo.html' title='ArtifactExecutionInfo'>ArtifactExecutionInfo</a>&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getHistory()">getHistory</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.util.Deque&lt;<a href='../../../org/moqui/context/ArtifactExecutionInfo.html' title='ArtifactExecutionInfo'>ArtifactExecutionInfo</a>&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getStack()">getStack</a></strong>()</code><br>Gets a stack/deque/list of objects representing artifacts that have been executed to get to the current artifact.
 </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#peek()">peek</a></strong>()</code><br>Gets information about the current artifact being executed, and about authentication and authorization for
 that artifact.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#pop(org.moqui.context.ArtifactExecutionInfo)">pop</a></strong>(<a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a> aei)</code><br>Pop from the artifact stack and verify it is the same artifact name and type. </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>java.lang.String</strong></code></td>
                            <td class="colLast"><code><strong><a href="#printHistory()">printHistory</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#push(org.moqui.context.ArtifactExecutionInfo, boolean)">push</a></strong>(<a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a> aei, boolean requiresAuthz)</code><br>Push onto the artifact stack. </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#push(java.lang.String, org.moqui.context.ArtifactExecutionInfo.ArtifactType, org.moqui.context.ArtifactExecutionInfo.AuthzAction, boolean)">push</a></strong>(java.lang.String name, <a href='../../../org/moqui/context/ArtifactExecutionInfo.ArtifactType.html'>ArtifactType</a> typeEnum, <a href='../../../org/moqui/context/ArtifactExecutionInfo.AuthzAction.html'>AuthzAction</a> actionEnum, boolean requiresAuthz)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#setAnonymousAuthorizedAll()">setAnonymousAuthorizedAll</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#setAnonymousAuthorizedView()">setAnonymousAuthorizedView</a></strong>()</code><br></td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
            
        </ul>
        
    </li>
    </ul>
</div>

<div class="details">
    <ul class="blockList">
        <li class="blockList">
           

            

            

            

            


            
            <!-- =========== METHOD DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="method_detail">
                    <!--   -->
                </a>
                    <h3>Method Detail</h3>
                    
                        <a name="disableAuthz()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;boolean <strong>disableAuthz</strong>()</h4>
                                <p> Disable authorization checks for the current ExecutionContext only.
 This should be used when the system automatically does something (possible based on a user action) that the user
 would not generally have permission to do themselves.
     <DL><DT><B>Returns:</B></DT><DD>boolean representing previous state of disable authorization (true if was disabled, false if not). If
         this is true, you should not enableAuthz when you are done and instead allow whichever code first did the
         disable to enable it.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="disableEntityEca()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;boolean <strong>disableEntityEca</strong>()</h4>
                                <p> Disable Entity Facade ECA rules (for this thread/ExecutionContext only, does not affect other things happening
 in the system).
     <DL><DT><B>Returns:</B></DT><DD>boolean following same pattern as disableAuthz(), and should be handled the same way.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="disableTarpit()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;boolean <strong>disableTarpit</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="enableAuthz()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;void <strong>enableAuthz</strong>()</h4>
                                <p> Enable authorization after a disableAuthz() call. Not that this should be done in a finally block with the code
 following the disableAuthz() in the corresponding try block. If this is not in a finally block an exception may
 result in authorizations being disabled for the rest of the scope of the ExecutionContext (a potential security
 whole).
     </p>
                            </li>
                        </ul>
                    
                        <a name="enableEntityEca()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;void <strong>enableEntityEca</strong>()</h4>
                                <p> Disable Entity Facade ECA rules (for this thread/ExecutionContext only, does not affect other things happening
 in the system).
     </p>
                            </li>
                        </ul>
                    
                        <a name="enableTarpit()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;void <strong>enableTarpit</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="getHistory()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;java.util.List&lt;<a href='../../../org/moqui/context/ArtifactExecutionInfo.html' title='ArtifactExecutionInfo'>ArtifactExecutionInfo</a>&gt; <strong>getHistory</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="getStack()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;java.util.Deque&lt;<a href='../../../org/moqui/context/ArtifactExecutionInfo.html' title='ArtifactExecutionInfo'>ArtifactExecutionInfo</a>&gt; <strong>getStack</strong>()</h4>
                                <p> Gets a stack/deque/list of objects representing artifacts that have been executed to get to the current artifact.
 The bottom artifact in the stack will generally be a screen or a service. If a service is run locally
 this will trace back to the screen or service that called it, and if a service was called remotely it will be
 the bottom of the stack.
     <DL><DT><B>Returns:</B></DT><DD>Actual ArtifactExecutionInfo stack/deque object</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="peek()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;<a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a> <strong>peek</strong>()</h4>
                                <p> Gets information about the current artifact being executed, and about authentication and authorization for
 that artifact.
     <DL><DT><B>Returns:</B></DT><DD>Current (most recent) ArtifactExecutionInfo</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="pop(org.moqui.context.ArtifactExecutionInfo)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;<a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a> <strong>pop</strong>(<a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a> aei)</h4>
                                <p> Pop from the artifact stack and verify it is the same artifact name and type. This is generally called internally
 by the framework and does not need to be used in application code. </p>
                            </li>
                        </ul>
                    
                        <a name="printHistory()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;java.lang.String <strong>printHistory</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="push(org.moqui.context.ArtifactExecutionInfo, boolean)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;void <strong>push</strong>(<a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a> aei, boolean requiresAuthz)</h4>
                                <p> Push onto the artifact stack. This is generally called internally by the framework and does not need to be used
 in application code. </p>
                            </li>
                        </ul>
                    
                        <a name="push(java.lang.String, org.moqui.context.ArtifactExecutionInfo.ArtifactType, org.moqui.context.ArtifactExecutionInfo.AuthzAction, boolean)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;<a href='../../../org/moqui/context/ArtifactExecutionInfo.html'>ArtifactExecutionInfo</a> <strong>push</strong>(java.lang.String name, <a href='../../../org/moqui/context/ArtifactExecutionInfo.ArtifactType.html'>ArtifactType</a> typeEnum, <a href='../../../org/moqui/context/ArtifactExecutionInfo.AuthzAction.html'>AuthzAction</a> actionEnum, boolean requiresAuthz)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="setAnonymousAuthorizedAll()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;void <strong>setAnonymousAuthorizedAll</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="setAnonymousAuthorizedView()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;void <strong>setAnonymousAuthorizedView</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            
        </li>
    </ul>
</div>

<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
    <!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../index-all.html">Index</a></li>
        <li><a href="../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../index.html?org/moqui/context/ArtifactExecutionFacade" target="_top">Frames</a></li>
            <li><a href="ArtifactExecutionFacade.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <p>Groovy Documentation</p>
    <a name="skip-navbar_bottom">
        <!--   -->
    </a>
    </div>
</div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
